import yfinance as yf
from langchain.tools import tool

# 定义查股价工具
@tool
def get_stock_price(symbol: str):
    """输入股票代码（如 AAPL, TSLA），返回当前股价和基本信息。"""
    ticker = yf.Ticker(symbol)
    data = ticker.history(period="1d")
    if data.empty:
        return "未找到该股票数据。"
    current_price = data['Close'].iloc[-1]
    return f"{symbol} 的当前价格是: ${current_price:.2f}"

# 定义查新闻工具 (这里使用简单的搜索模拟)
from langchain_community.tools import DuckDuckGoSearchRun
search = DuckDuckGoSearchRun()

@tool
def get_financial_news(query: str):
    """搜索关于特定股票的最新财经新闻。"""
    return search.run(f"{query} stock latest financial news")

from langchain_openai import ChatOpenAI

# 1. 初始化 LLM (需要填入你的 API Key)
llm = ChatOpenAI(model="gpt-4o", temperature=0, api_key="YOUR_API_KEY")

# 2. 绑定工具列表
tools = [get_stock_price, get_financial_news]
llm_with_tools = llm.bind_tools(tools)